<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
    <p:fieldset legend="Lista de Morador">
        <h:form id="formMorador">
            <p:message id="messageMorador" for="messageMorador"/>
            <p:dataTable id="dtMorador" value="#{moradorMB.all}" var="morador" selection="#{moradorMB.moradorSelecionado}" selectionMode="single" rowKey="#{morador.codigoPessoa}">
                <p:column headerText="Nome">
                    <h:outputLabel value="#{morador.nome}"/>
                </p:column>
                <p:column headerText="Estado">
                    <h:outputLabel value="#{morador.estado == 0 ? 'Inativo' : 'Ativo'}"/>
                </p:column>
                <p:column headerText="Proprietário">
                    <h:outputLabel value="#{morador.proprietario == 0 ? 'Inativo' : 'Ativo'}"/>
                </p:column>
                <p:column headerText="Bloco">
                    <h:outputLabel value="#{morador.apartamentoCodigo.blocoCodigo.bloco}"/>
                </p:column>
                <p:column headerText="Apartamento">
                    <h:outputLabel value="#{morador.apartamentoCodigo.apartamento}"/>
                </p:column>
                <p:column headerText="Telefone1">
                    <h:outputLabel value="#{morador.telefone}"/>
                </p:column>
                <p:column headerText="Telefone2">
                    <h:outputLabel value="#{morador.telefone2}"/>
                </p:column>
                <p:column headerText="Editar">
                    <p:commandButton value="Editar" oncomplete="modalMorador.show()" actionListener="#{moradorMB.abrirEditar()}" update=":tabView:cadastroMorador">
                        <f:setPropertyActionListener value="#{morador}" target="#{moradorMB.moradorSelecionado}" />
                    </p:commandButton>
                </p:column>
                <p:column headerText="Excluir">
                    <p:commandButton value="Excluir" actionListener="#{moradorMB.delete()}" update=":tabView:formMorador">
                        <f:setPropertyActionListener value="#{morador}" target="#{moradorMB.moradorSelecionado}" />
                    </p:commandButton>
                </p:column>
            </p:dataTable>
            <p:commandButton value="Add" onclick="modalMorador.show()"/>
        </h:form> 
    </p:fieldset> 

    <p:dialog appendToBody="true"  id="idModalMorador" header="Cadastro de Morador" widgetVar="modalMorador" modal="true">
        <h:form id="cadastroMorador"> 
            <p:panel id="panelMorador">
                <p:messages/>
                <h:panelGrid columns="2">
                    <h:outputLabel value="Nome completo"/>
                    <h:inputHidden/>
                    <p:inputText id="nomeMorador" value="#{moradorMB.morador.nome}" required="true" requiredMessage="Por favor coloque um nome"/>
                    <h:inputHidden/>

                    <h:outputLabel value="Estado"/>
                    <h:outputLabel value="Proprietário"/>

                    <h:selectOneRadio value="#{moradorMB.morador.estado}" required="true" requiredMessage="Por favor selecione um valor">
                        <f:selectItem itemValue="1" itemLabel="Ativo" />
                        <f:selectItem itemValue="0" itemLabel="Inativo" />
                    </h:selectOneRadio>                    
                    <h:selectOneRadio value="#{moradorMB.morador.proprietario}" required="true" requiredMessage="Por favor selecione um valor">
                        <f:selectItem itemValue="1" itemLabel="Sim" />
                        <f:selectItem itemValue="0" itemLabel="Não" />
                    </h:selectOneRadio>

                    <h:outputLabel value="Bloco"/>
                    <h:outputLabel value="Apartamento"/>

                    <p:selectOneMenu required="true" requiredMessage="Por favor selecione um Bloco" value="#{moradorMB.idBloco}">
                        <f:selectItem itemLabel="Selecione"/>
                        <f:selectItems value="#{moradorMB.listBloco}"/>
                        <p:ajax update="cbAp" event="change"/>
                    </p:selectOneMenu>
                    <p:selectOneMenu id="cbAp" required="true" requiredMessage="Por favor selecione um Apartamento" value="#{moradorMB.idAp}">
                        <f:selectItem itemLabel="Selecione"/>
                        <f:selectItems value="#{moradorMB.listAp}"/>
                    </p:selectOneMenu>

                    <h:outputLabel value="Telefone1"/>
                    <h:outputLabel value="Telefone2"/>

                    <p:inputMask mask="(99) 0999-9999" value="#{moradorMB.morador.telefone}" required="true" requiredMessage="Por favor coloque um telefone"/>
                    <p:inputMask mask="(99) 0999-9999" value="#{moradorMB.morador.telefone2}"/>

                    <h:outputLabel value="Email"/>
                    <h:inputHidden/>

                    <p:inputText value="#{moradorMB.morador.dadosAcessoCodigo.email}" id="email" required="true" requiredMessage="Por favor informe o seu email" validatorMessage="Email inválido">
                        <f:validateRegex pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />
                    </p:inputText>
                    <h:inputHidden/>

                    <h:outputLabel value="Senha"/>
                    <h:inputHidden/>

                    <p:password required="true" requiredMessage="Por favor coloque uma senha" feedback="true" value="#{moradorMB.morador.dadosAcessoCodigo.senha}"/>
                    <h:inputHidden/>

                    <p:commandButton id="btCancelMorador" value="Cancelar" oncomplete="modalMorador.hide()" update=":tabView:cadastroMorador:panelMorador :tabView:formMorador" action="#{moradorMB.clean()}"/>                    
                    <p:commandButton id="btSaveMorador" value="Salvar" actionListener="#{moradorMB.salvar(event)}" update=":tabView:cadastroMorador:panelMorador :tabView:formMorador"/>

                </h:panelGrid>
            </p:panel>
        </h:form>
    </p:dialog>
</html>

